'use strict'
const { defineConfig } = require('@vue/cli-service')
const path = require('path')
function resolve(dir) {
    return path.join(__dirname, dir)
}

const indexFileName =
    process.env.VUE_APP_VIDEO_TYPE == 'dahua' ? 'index.dahua' : 'index.default'
// console.log('🚀 ~ indexFileName:', indexFileName)

module.exports = defineConfig({
    publicPath: '',
    transpileDependencies: false,
    productionSourceMap: false,
    pages: {
        index: {
            // page 的入口
            entry: 'src/main.ts',
            // 模板来源
            template: `public/${indexFileName}.html`,
            // 在 dist/index.html 的输出
            filename: 'index.html',
            // 当使用 title 选项时，
            // template 中的 <title> 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
            title: 'Index Page',
            // 在这个页面中包含的块，默认情况下会包含
            // 提取出来的通用 chunk 和 vendor chunk。
            chunks: ['chunk-vendors', 'chunk-common', 'index']
        }
    },
    chainWebpack: (config) => {
        config.plugin('define').tap((definitions) => {
            Object.assign(definitions[0], {
                __VUE_OPTIONS_API__: 'true',
                __VUE_PROD_DEVTOOLS__: 'false',
                __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'false'
            })

            return definitions
        })
    },
    configureWebpack: (config) => {
        return {
            resolve: {
                alias: {
                    '@': resolve('src')
                }
            }
        }
    },
    css: {
        loaderOptions: {
            scss: {
                additionalData: `@import "~@/css/element.scss";`
            }
        }
    },
    devServer: {
        client: {
            overlay: false // 编译错误时，取消全屏覆盖（建议关掉）
        },
        host: '0.0.0.0',
        port: 2201,
        proxy: {
            // // 解决图片跨域问题（api请求时注意使用/upload开头）
            // '/uploads': { // 前端项目要被代理的路径
            //     target: 'http://192.168.18.21:9600', // 真正的图片路径
            //     changeOrigin: true, //表示是否改变原域名
            //     ws: true, //表示WebSocket协议
            //     pathRewirte: {
            //         // 这里是追加链接,比如真实接口/请求路径里包含了 /upload,就需要这样配置.
            //         '^/uploads': ''
            //     }
            // },

            '^/': {
                target: 'http://192.168.18.6:2200/',
                changeOrigin: true,
                rewrite: (p) => p.replace(/^\/server/, ''),
                ws: false
            }
            // '^/webrtc': {
            //   target: 'http://192.168.18.16:8081/',
            //   changeOrigin: true
            // }
        }
    },
    pwa: {
        iconPaths: {
            favicon32: 'favicon.ico',
            favicon16: 'favicon.ico',
            appleTouchIcon: 'favicon.ico',
            maskIcon: 'favicon.ico',
            msTileImage: 'favicon.ico'
        }
    }
})
